Priority encoders are used in a variety of different computing components, including fixed- and floating-point processing units, comparators, incrementers, and decrementers. In general, a priority encoder receives a plurality of prioritized input signals, any of which may be asserted. In response to these input signals, the priority encoder generates an equal number of outputs with at most a single output signal asserted. This asserted output signal corresponds to the highest-priority input signal that is asserted. Thus, in essence, the highest-priority asserted input signal passes through the priority encoder while the remaining asserted input signals are cleared.
In many applications, however, the other input signals may carry useful information. For example, in content-addressable memories (CAMs), the fact that more than one input signal is asserted may indicate an error condition exists. As a result, additional circuit stages may need to be added to extract additional information from the received inputs. These additional stages can increase the amount of space and power utilized by the relevant circuits.